home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / drivers / aerofgt.c < prev    next >
C/C++ Source or Header  |  2000-05-04  |  68KB  |  1,709 lines

  1. /***************************************************************************
  2.  
  3. Various Video System Co. games using the C7-01 VS8803 VS8904 VS8905 video
  4. chips.
  5. I'm not sure, but I think 8904/8905 handle sprites and c7-01/8803 tilemaps.
  6. tail2nos doesn't have the 8904/8905, and indeed it has a different sprite
  7. system.
  8.  
  9. Driver by Nicola Salmoria
  10.  
  11.  
  12. Notes:
  13. - Sound doesn't work in Spinal Breakers
  14. - Sprite zoom is probably not 100% accurate (check the table in vidhrdw).
  15.   In pspikes, the zooming text during attract mode is horrible.
  16. - Aero Fighters has graphics for different tiles (Sonic Wings, The Final War)
  17.   but I haven't found a way to display them - different program, maybe.
  18.  
  19. pspikes/turbofrc/aerofgtb write to two addresses which look like control
  20. registers for a video generator. Maybe they control the display size/position.
  21. aerofgt is different, it writes to consecutive memory addresses and the values
  22. it writes don't seem to be related to these ones.
  23.  
  24.           00 01 02 03 04 05  08 09 0a 0b 0c 0d
  25.           ------------------------------------
  26. pspikes   57 63 69 71 1f 00  77 79 7b 7f 1f 00
  27. karatblz  57 63 69 71 1f 00  77 79 7b 7f 1f 00
  28. turbofrc  57 63 69 71 1f 00  77 79 7b 7f 1f 00
  29. spinlbrk  57 68 6f 75 ff 01  77 78 7b 7f ff 00
  30. aerofgtb  4f 5d 63 71 1f 00  6f 70 72 7c 1f 02
  31. tail2nos  4f 5e 64 71 1f 09  7a 7c 7e 7f 1f 02
  32.  
  33. I think that bit 1 of register 0d is flip screen.
  34.  
  35. ***************************************************************************/
  36.  
  37. #include "driver.h"
  38. #include "vidhrdw/generic.h"
  39. #include "cpu/z80/z80.h"
  40.  
  41.  
  42. extern unsigned char *aerofgt_rasterram;
  43. extern unsigned char *aerofgt_bg1videoram,*aerofgt_bg2videoram;
  44. extern unsigned char *aerofgt_spriteram1,*aerofgt_spriteram2;
  45. extern size_t aerofgt_spriteram1_size,aerofgt_spriteram2_size;
  46.  
  47. READ_HANDLER( aerofgt_rasterram_r );
  48. WRITE_HANDLER( aerofgt_rasterram_w );
  49. READ_HANDLER( aerofgt_spriteram_2_r );
  50. WRITE_HANDLER( aerofgt_spriteram_2_w );
  51. READ_HANDLER( aerofgt_bg1videoram_r );
  52. READ_HANDLER( aerofgt_bg2videoram_r );
  53. WRITE_HANDLER( aerofgt_bg1videoram_w );
  54. WRITE_HANDLER( aerofgt_bg2videoram_w );
  55. WRITE_HANDLER( pspikes_gfxbank_w );
  56. WRITE_HANDLER( karatblz_gfxbank_w );
  57. WRITE_HANDLER( spinlbrk_gfxbank_w );
  58. WRITE_HANDLER( turbofrc_gfxbank_w );
  59. WRITE_HANDLER( aerofgt_gfxbank_w );
  60. WRITE_HANDLER( aerofgt_bg1scrollx_w );
  61. WRITE_HANDLER( aerofgt_bg1scrolly_w );
  62. WRITE_HANDLER( aerofgt_bg2scrollx_w );
  63. WRITE_HANDLER( aerofgt_bg2scrolly_w );
  64. WRITE_HANDLER( pspikes_palette_bank_w );
  65. int pspikes_vh_start(void);
  66. int karatblz_vh_start(void);
  67. int spinlbrk_vh_start(void);
  68. int turbofrc_vh_start(void);
  69. void pspikes_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  70. void karatblz_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  71. void spinlbrk_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  72. void turbofrc_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  73. void aerofgt_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  74.  
  75.  
  76.  
  77.  
  78. static unsigned char *aerofgt_workram;
  79.  
  80. static READ_HANDLER( aerofgt_workram_r )
  81. {
  82.     return READ_WORD(&aerofgt_workram[offset]);
  83. }
  84.  
  85. static WRITE_HANDLER( aerofgt_workram_w )
  86. {
  87.     COMBINE_WORD_MEM(&aerofgt_workram[offset],data);
  88. }
  89.  
  90.  
  91.  
  92. static int pending_command;
  93.  
  94. static WRITE_HANDLER( sound_command_w )
  95. {
  96.     if ((data & 0x00ff0000) == 0)
  97.     {
  98.         pending_command = 1;
  99.         soundlatch_w(offset,data & 0xff);
  100.         cpu_cause_interrupt(1,Z80_NMI_INT);
  101.     }
  102. }
  103.  
  104. static WRITE_HANDLER( turbofrc_sound_command_w )
  105. {
  106.     if ((data & 0xff000000) == 0)
  107.     {
  108.         pending_command = 1;
  109.         soundlatch_w(offset,(data >> 8) & 0xff);
  110.         cpu_cause_interrupt(1,Z80_NMI_INT);
  111.     }
  112. }
  113.  
  114. static READ_HANDLER( pending_command_r )
  115. {
  116.     return pending_command;
  117. }
  118.  
  119. static WRITE_HANDLER( pending_command_clear_w )
  120. {
  121.     pending_command = 0;
  122. }
  123.  
  124. static WRITE_HANDLER( aerofgt_sh_bankswitch_w )
  125. {
  126.     unsigned char *RAM = memory_region(REGION_CPU2);
  127.     int bankaddress;
  128.  
  129.  
  130.     bankaddress = 0x10000 + (data & 0x03) * 0x8000;
  131.     cpu_setbank(1,&RAM[bankaddress]);
  132. }
  133.  
  134.  
  135.  
  136. static struct MemoryReadAddress pspikes_readmem[] =
  137. {
  138.     { 0x000000, 0x03ffff, MRA_ROM },
  139.     { 0x100000, 0x10ffff, MRA_BANK6 },
  140.     { 0x200000, 0x203fff, MRA_BANK4 },
  141.     { 0xff8000, 0xff8fff, aerofgt_bg1videoram_r },
  142.     { 0xffd000, 0xffdfff, aerofgt_rasterram_r },
  143.     { 0xffe000, 0xffefff, paletteram_word_r },
  144.     { 0xfff000, 0xfff001, input_port_0_r },
  145.     { 0xfff002, 0xfff003, input_port_1_r },
  146.     { 0xfff004, 0xfff005, input_port_2_r },
  147.     { 0xfff006, 0xfff007, pending_command_r },
  148.     { -1 }  /* end of table */
  149. };
  150.  
  151. static struct MemoryWriteAddress pspikes_writemem[] =
  152. {
  153.     { 0x000000, 0x03ffff, MWA_ROM },
  154.     { 0x100000, 0x10ffff, MWA_BANK6 },    /* work RAM */
  155.     { 0x200000, 0x203fff, MWA_BANK4, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
  156.     { 0xff8000, 0xff8fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
  157.     { 0xffc000, 0xffc3ff, aerofgt_spriteram_2_w, &spriteram_2, &spriteram_2_size },
  158.     { 0xffd000, 0xffdfff, aerofgt_rasterram_w, &aerofgt_rasterram },    /* bg1 scroll registers */
  159.     { 0xffe000, 0xffefff, paletteram_xRRRRRGGGGGBBBBB_word_w, &paletteram },
  160.     { 0xfff000, 0xfff001, pspikes_palette_bank_w },
  161.     { 0xfff002, 0xfff003, pspikes_gfxbank_w },
  162.     { 0xfff004, 0xfff005, aerofgt_bg1scrolly_w },
  163.     { 0xfff006, 0xfff007, sound_command_w },
  164.     { -1 }  /* end of table */
  165. };
  166.  
  167. static struct MemoryReadAddress karatblz_readmem[] =
  168. {
  169.     { 0x000000, 0x07ffff, MRA_ROM },
  170.     { 0x080000, 0x081fff, aerofgt_bg1videoram_r },
  171.     { 0x082000, 0x083fff, aerofgt_bg2videoram_r },
  172.     { 0x0a0000, 0x0affff, MRA_BANK4 },
  173.     { 0x0b0000, 0x0bffff, MRA_BANK5 },
  174.     { 0x0c0000, 0x0cffff, MRA_BANK6 },    /* work RAM */
  175.     { 0x0f8000, 0x0fbfff, aerofgt_workram_r },    /* work RAM */
  176.     { 0xff8000, 0xffbfff, aerofgt_workram_r },    /* mirror */
  177.     { 0x0fc000, 0x0fc7ff, aerofgt_spriteram_2_r },
  178.     { 0x0fe000, 0x0fe7ff, paletteram_word_r },
  179.     { 0x0ff000, 0x0ff001, input_port_0_r },
  180.     { 0x0ff002, 0x0ff003, input_port_1_r },
  181.     { 0x0ff004, 0x0ff005, input_port_2_r },
  182.     { 0x0ff006, 0x0ff007, input_port_3_r },
  183.     { 0x0ff008, 0x0ff009, input_port_4_r },
  184.     { 0x0ff00a, 0x0ff00b, pending_command_r },
  185.     { -1 }  /* end of table */
  186. };
  187.  
  188. static struct MemoryWriteAddress karatblz_writemem[] =
  189. {
  190.     { 0x000000, 0x07ffff, MWA_ROM },
  191.     { 0x080000, 0x081fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
  192.     { 0x082000, 0x083fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
  193.     { 0x0a0000, 0x0affff, MWA_BANK4, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
  194.     { 0x0b0000, 0x0bffff, MWA_BANK5, &aerofgt_spriteram2, &aerofgt_spriteram2_size },
  195.     { 0x0c0000, 0x0cffff, MWA_BANK6 },    /* work RAM */
  196.     { 0x0f8000, 0x0fbfff, aerofgt_workram_w, &aerofgt_workram },    /* work RAM */
  197.     { 0xff8000, 0xffbfff, aerofgt_workram_w },    /* mirror */
  198.     { 0x0fc000, 0x0fc7ff, aerofgt_spriteram_2_w, &spriteram_2, &spriteram_2_size },
  199.     { 0x0fe000, 0x0fe7ff, paletteram_xRRRRRGGGGGBBBBB_word_w, &paletteram },
  200.     { 0x0ff002, 0x0ff003, karatblz_gfxbank_w },
  201.     { 0x0ff006, 0x0ff007, sound_command_w },
  202.     { 0x0ff008, 0x0ff009, aerofgt_bg1scrollx_w },
  203.     { 0x0ff00a, 0x0ff00b, aerofgt_bg1scrolly_w },
  204.     { 0x0ff00c, 0x0ff00d, aerofgt_bg2scrollx_w },
  205.     { 0x0ff00e, 0x0ff00f, aerofgt_bg2scrolly_w },
  206.     { -1 }  /* end of table */
  207. };
  208.  
  209. static struct MemoryReadAddress spinlbrk_readmem[] =
  210. {
  211.     { 0x000000, 0x03ffff, MRA_ROM },
  212.     { 0x080000, 0x080fff, aerofgt_bg1videoram_r },
  213.     { 0x082000, 0x082fff, aerofgt_bg2videoram_r },
  214.     { 0xff8000, 0xffbfff, MRA_BANK6 },
  215.     { 0xffc000, 0xffc7ff, aerofgt_spriteram_2_r },
  216.     { 0xffd000, 0xffd1ff, aerofgt_rasterram_r },
  217.     { 0xffe000, 0xffe7ff, paletteram_word_r },
  218.     { 0xfff000, 0xfff001, input_port_0_r },
  219.     { 0xfff002, 0xfff003, input_port_1_r },
  220.     { 0xfff004, 0xfff005, input_port_2_r },
  221.     { -1 }  /* end of table */
  222. };
  223.  
  224. static struct MemoryWriteAddress spinlbrk_writemem[] =
  225. {
  226.     { 0x000000, 0x03ffff, MWA_ROM },
  227.     { 0x080000, 0x080fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
  228.     { 0x082000, 0x082fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
  229.     { 0xff8000, 0xffbfff, MWA_BANK6 },    /* work RAM */
  230.     { 0xffc000, 0xffc7ff, aerofgt_spriteram_2_w, &spriteram_2, &spriteram_2_size },
  231.     { 0xffd000, 0xffd1ff, aerofgt_rasterram_w, &aerofgt_rasterram },    /* bg1 scroll registers */
  232.     { 0xffe000, 0xffe7ff, paletteram_xRRRRRGGGGGBBBBB_word_w, &paletteram },
  233.     { 0xfff000, 0xfff001, spinlbrk_gfxbank_w },
  234.     { 0xfff002, 0xfff003, aerofgt_bg2scrollx_w },
  235.     { 0xfff006, 0xfff007, sound_command_w },
  236.     { -1 }  /* end of table */
  237. };
  238.  
  239. static struct MemoryReadAddress turbofrc_readmem[] =
  240. {
  241.     { 0x000000, 0x0bffff, MRA_ROM },
  242.     { 0x0c0000, 0x0cffff, MRA_BANK6 },    /* work RAM */
  243.     { 0x0d0000, 0x0d1fff, aerofgt_bg1videoram_r },
  244.     { 0x0d2000, 0x0d3fff, aerofgt_bg2videoram_r },
  245.     { 0x0e0000, 0x0e3fff, MRA_BANK4 },
  246.     { 0x0e4000, 0x0e7fff, MRA_BANK5 },
  247.     { 0x0f8000, 0x0fbfff, aerofgt_workram_r },    /* work RAM */
  248.     { 0xff8000, 0xffbfff, aerofgt_workram_r },    /* mirror */
  249.     { 0x0fc000, 0x0fc7ff, aerofgt_spriteram_2_r },
  250.     { 0xffc000, 0xffc7ff, aerofgt_spriteram_2_r },    /* mirror */
  251.     { 0x0fd000, 0x0fdfff, aerofgt_rasterram_r },
  252.     { 0xffd000, 0xffdfff, aerofgt_rasterram_r },    /* mirror */
  253.     { 0x0fe000, 0x0fe7ff, paletteram_word_r },
  254.     { 0xfff000, 0xfff001, input_port_0_r },
  255.     { 0xfff002, 0xfff003, input_port_1_r },
  256.     { 0xfff004, 0xfff005, input_port_2_r },
  257.     { 0xfff006, 0xfff007, pending_command_r },
  258.     { 0xfff008, 0xfff009, input_port_3_r },
  259.     { -1 }  /* end of table */
  260. };
  261.  
  262. static struct MemoryWriteAddress turbofrc_writemem[] =
  263. {
  264.     { 0x000000, 0x0bffff, MWA_ROM },
  265.     { 0x0c0000, 0x0cffff, MWA_BANK6 },    /* work RAM */
  266.     { 0x0d0000, 0x0d1fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
  267.     { 0x0d2000, 0x0d3fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
  268.     { 0x0e0000, 0x0e3fff, MWA_BANK4, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
  269.     { 0x0e4000, 0x0e7fff, MWA_BANK5, &aerofgt_spriteram2, &aerofgt_spriteram2_size },
  270.     { 0x0f8000, 0x0fbfff, aerofgt_workram_w, &aerofgt_workram },    /* work RAM */
  271.     { 0xff8000, 0xffbfff, aerofgt_workram_w },    /* mirror */
  272.     { 0x0fc000, 0x0fc7ff, aerofgt_spriteram_2_w, &spriteram_2, &spriteram_2_size },
  273.     { 0xffc000, 0xffc7ff, aerofgt_spriteram_2_w },    /* mirror */
  274.     { 0x0fd000, 0x0fdfff, aerofgt_rasterram_w, &aerofgt_rasterram },    /* bg1 scroll registers */
  275.     { 0xffd000, 0xffdfff, aerofgt_rasterram_w },    /* mirror */
  276.     { 0x0fe000, 0x0fe7ff, paletteram_xRRRRRGGGGGBBBBB_word_w, &paletteram },
  277.     { 0xfff002, 0xfff003, aerofgt_bg1scrolly_w },
  278.     { 0xfff004, 0xfff005, aerofgt_bg2scrollx_w },
  279.     { 0xfff006, 0xfff007, aerofgt_bg2scrolly_w },
  280.     { 0xfff008, 0xfff00b, turbofrc_gfxbank_w },
  281.     { 0xfff00c, 0xfff00d, MWA_NOP },    /* related to bg2 (written together with the scroll registers) */
  282.     { 0xfff00e, 0xfff00f, turbofrc_sound_command_w },
  283.     { -1 }  /* end of table */
  284. };
  285.  
  286. static struct MemoryReadAddress aerofgtb_readmem[] =
  287. {
  288.     { 0x000000, 0x07ffff, MRA_ROM },
  289.     { 0x0c0000, 0x0cffff, MRA_BANK6 },    /* work RAM */
  290.     { 0x0d0000, 0x0d1fff, aerofgt_bg1videoram_r },
  291.     { 0x0d2000, 0x0d3fff, aerofgt_bg2videoram_r },
  292.     { 0x0e0000, 0x0e3fff, MRA_BANK4 },
  293.     { 0x0e4000, 0x0e7fff, MRA_BANK5 },
  294.     { 0x0f8000, 0x0fbfff, aerofgt_workram_r },    /* work RAM */
  295.     { 0x0fc000, 0x0fc7ff, aerofgt_spriteram_2_r },
  296.     { 0x0fd000, 0x0fd7ff, paletteram_word_r },
  297.     { 0x0fe000, 0x0fe001, input_port_0_r },
  298.     { 0x0fe002, 0x0fe003, input_port_1_r },
  299.     { 0x0fe004, 0x0fe005, input_port_2_r },
  300.     { 0x0fe006, 0x0fe007, pending_command_r },
  301.     { 0x0fe008, 0x0fe009, input_port_3_r },
  302.     { 0x0ff000, 0x0fffff, aerofgt_rasterram_r },
  303.     { -1 }  /* end of table */
  304. };
  305.  
  306. static struct MemoryWriteAddress aerofgtb_writemem[] =
  307. {
  308.     { 0x000000, 0x07ffff, MWA_ROM },
  309.     { 0x0c0000, 0x0cffff, MWA_BANK6 },    /* work RAM */
  310.     { 0x0d0000, 0x0d1fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
  311.     { 0x0d2000, 0x0d3fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
  312.     { 0x0e0000, 0x0e3fff, MWA_BANK4, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
  313.     { 0x0e4000, 0x0e7fff, MWA_BANK5, &aerofgt_spriteram2, &aerofgt_spriteram2_size },
  314.     { 0x0f8000, 0x0fbfff, aerofgt_workram_w, &aerofgt_workram },    /* work RAM */
  315.     { 0x0fc000, 0x0fc7ff, aerofgt_spriteram_2_w, &spriteram_2, &spriteram_2_size },
  316.     { 0x0fd000, 0x0fd7ff, paletteram_xRRRRRGGGGGBBBBB_word_w, &paletteram },
  317.     { 0x0fe002, 0x0fe003, aerofgt_bg1scrolly_w },
  318.     { 0x0fe004, 0x0fe005, aerofgt_bg2scrollx_w },
  319.     { 0x0fe006, 0x0fe007, aerofgt_bg2scrolly_w },
  320.     { 0x0fe008, 0x0fe00b, turbofrc_gfxbank_w },
  321.     { 0x0fe00e, 0x0fe00f, turbofrc_sound_command_w },
  322.     { 0x0ff000, 0x0fffff, aerofgt_rasterram_w, &aerofgt_rasterram },    /* used only for the scroll registers */
  323.     { -1 }  /* end of table */
  324. };
  325.  
  326. static struct MemoryReadAddress aerofgt_readmem[] =
  327. {
  328.     { 0x000000, 0x07ffff, MRA_ROM },
  329.     { 0x1a0000, 0x1a07ff, paletteram_word_r },
  330.     { 0x1b0000, 0x1b07ff, aerofgt_rasterram_r },
  331.     { 0x1b0800, 0x1b0801, MRA_NOP },    /* ??? */
  332.     { 0x1b0ff0, 0x1b0fff, MRA_BANK7 },    /* stack area during boot */
  333.     { 0x1b2000, 0x1b3fff, aerofgt_bg1videoram_r },
  334.     { 0x1b4000, 0x1b5fff, aerofgt_bg2videoram_r },
  335.     { 0x1c0000, 0x1c3fff, MRA_BANK4 },
  336.     { 0x1c4000, 0x1c7fff, MRA_BANK5 },
  337.     { 0x1d0000, 0x1d1fff, aerofgt_spriteram_2_r },
  338.     { 0xfef000, 0xffefff, aerofgt_workram_r },    /* work RAM */
  339.     { 0xffffa0, 0xffffa1, input_port_0_r },
  340.     { 0xffffa2, 0xffffa3, input_port_1_r },
  341.     { 0xffffa4, 0xffffa5, input_port_2_r },
  342.     { 0xffffa6, 0xffffa7, input_port_3_r },
  343.     { 0xffffa8, 0xffffa9, input_port_4_r },
  344.     { 0xffffac, 0xffffad, pending_command_r },
  345.     { 0xffffae, 0xffffaf, input_port_5_r },
  346.     { -1 }  /* end of table */
  347. };
  348.  
  349. static struct MemoryWriteAddress aerofgt_writemem[] =
  350. {
  351.     { 0x000000, 0x07ffff, MWA_ROM },
  352.     { 0x1a0000, 0x1a07ff, paletteram_xRRRRRGGGGGBBBBB_word_w, &paletteram },
  353.     { 0x1b0000, 0x1b07ff, aerofgt_rasterram_w, &aerofgt_rasterram },    /* used only for the scroll registers */
  354.     { 0x1b0800, 0x1b0801, MWA_NOP },    /* ??? */
  355.     { 0x1b0ff0, 0x1b0fff, MWA_BANK7 },    /* stack area during boot */
  356.     { 0x1b2000, 0x1b3fff, aerofgt_bg1videoram_w, &aerofgt_bg1videoram },
  357.     { 0x1b4000, 0x1b5fff, aerofgt_bg2videoram_w, &aerofgt_bg2videoram },
  358.     { 0x1c0000, 0x1c3fff, MWA_BANK4, &aerofgt_spriteram1, &aerofgt_spriteram1_size },
  359.     { 0x1c4000, 0x1c7fff, MWA_BANK5, &aerofgt_spriteram2, &aerofgt_spriteram2_size },
  360.     { 0x1d0000, 0x1d1fff, aerofgt_spriteram_2_w, &spriteram_2, &spriteram_2_size },
  361.     { 0xfef000, 0xffefff, aerofgt_workram_w, &aerofgt_workram },    /* work RAM */
  362.     { 0xffff80, 0xffff87, aerofgt_gfxbank_w },
  363.     { 0xffff88, 0xffff89, aerofgt_bg1scrolly_w },    /* + something else in the top byte */
  364.     { 0xffff90, 0xffff91, aerofgt_bg2scrolly_w },    /* + something else in the top byte */
  365.     { 0xffffac, 0xffffad, MWA_NOP },    /* ??? */
  366.     { 0xffffc0, 0xffffc1, sound_command_w },
  367.     { -1 }  /* end of table */
  368. };
  369.  
  370.  
  371.  
  372. static struct MemoryReadAddress sound_readmem[] =
  373. {
  374.     { 0x0000, 0x77ff, MRA_ROM },
  375.     { 0x7800, 0x7fff, MRA_RAM },
  376.     { 0x8000, 0xffff, MRA_BANK1 },
  377.     { -1 }  /* end of table */
  378. };
  379.  
  380. static struct MemoryWriteAddress sound_writemem[] =
  381. {
  382.     { 0x0000, 0x77ff, MWA_ROM },
  383.     { 0x7800, 0x7fff, MWA_RAM },
  384.     { 0x8000, 0xffff, MWA_ROM },
  385.     { -1 }  /* end of table */
  386. };
  387.  
  388. static struct IOReadPort turbofrc_sound_readport[] =
  389. {
  390.     { 0x14, 0x14, soundlatch_r },
  391.     { 0x18, 0x18, YM2610_status_port_0_A_r },
  392.     { 0x1a, 0x1a, YM2610_status_port_0_B_r },
  393.     { -1 }    /* end of table */
  394. };
  395.  
  396. static struct IOWritePort turbofrc_sound_writeport[] =
  397. {
  398.     { 0x00, 0x00, aerofgt_sh_bankswitch_w },
  399.     { 0x14, 0x14, pending_command_clear_w },
  400.     { 0x18, 0x18, YM2610_control_port_0_A_w },
  401.     { 0x19, 0x19, YM2610_data_port_0_A_w },
  402.     { 0x1a, 0x1a, YM2610_control_port_0_B_w },
  403.     { 0x1b, 0x1b, YM2610_data_port_0_B_w },
  404.     { -1 }    /* end of table */
  405. };
  406.  
  407. static struct IOReadPort aerofgt_sound_readport[] =
  408. {
  409.     { 0x00, 0x00, YM2610_status_port_0_A_r },
  410.     { 0x02, 0x02, YM2610_status_port_0_B_r },
  411.     { 0x0c, 0x0c, soundlatch_r },
  412.     { -1 }    /* end of table */
  413. };
  414.  
  415. static struct IOWritePort aerofgt_sound_writeport[] =
  416. {
  417.     { 0x00, 0x00, YM2610_control_port_0_A_w },
  418.     { 0x01, 0x01, YM2610_data_port_0_A_w },
  419.     { 0x02, 0x02, YM2610_control_port_0_B_w },
  420.     { 0x03, 0x03, YM2610_data_port_0_B_w },
  421.     { 0x04, 0x04, aerofgt_sh_bankswitch_w },
  422.     { 0x08, 0x08, pending_command_clear_w },
  423.     { -1 }    /* end of table */
  424. };
  425.  
  426.  
  427.  
  428. INPUT_PORTS_START( pspikes )
  429.     PORT_START
  430.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
  431.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
  432.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
  433.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  434.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  435.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  436.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
  437.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  438.     PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
  439.     PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
  440.     PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
  441.     PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
  442.     PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  443.     PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  444.     PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
  445.     PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  446.  
  447.     PORT_START
  448.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
  449.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
  450.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
  451.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  452.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
  453.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
  454.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 )
  455.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  456.  
  457.     PORT_START
  458.     PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Coin_A ) )
  459.     PORT_DIPSETTING(      0x0001, DEF_STR( 3C_1C ) )
  460.     PORT_DIPSETTING(      0x0002, DEF_STR( 2C_1C ) )
  461.     PORT_DIPSETTING(      0x0003, DEF_STR( 1C_1C ) )
  462.     PORT_DIPSETTING(      0x0000, DEF_STR( 1C_2C ) )
  463.     PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Coin_B ) )
  464.     PORT_DIPSETTING(      0x0004, DEF_STR( 3C_1C ) )
  465.     PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
  466.     PORT_DIPSETTING(      0x000c, DEF_STR( 1C_1C ) )
  467.     PORT_DIPSETTING(      0x0000, DEF_STR( 1C_2C ) )
  468.     /* the following two select country in the Chinese version (ROMs not available) */
  469.     PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
  470.     PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  471.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  472.     PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
  473.     PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  474.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  475.     PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) )
  476.     PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  477.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  478.     PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
  479.     PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  480.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  481.     PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
  482.     PORT_DIPNAME( 0x0600, 0x0600, "1 Player Starting Score" )
  483.     PORT_DIPSETTING(      0x0600, "12-12" )
  484.     PORT_DIPSETTING(      0x0400, "11-11" )
  485.     PORT_DIPSETTING(      0x0200, "11-12" )
  486.     PORT_DIPSETTING(      0x0000, "10-12" )
  487.     PORT_DIPNAME( 0x1800, 0x1800, "2 Players Starting Score" )
  488.     PORT_DIPSETTING(      0x1800, "9-9" )
  489.     PORT_DIPSETTING(      0x1000, "7-7" )
  490.     PORT_DIPSETTING(      0x0800, "5-5" )
  491.     PORT_DIPSETTING(      0x0000, "0-0" )
  492.     PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Difficulty ) )
  493.     PORT_DIPSETTING(      0x2000, "Normal" )
  494.     PORT_DIPSETTING(      0x0000, "Hard" )
  495.     PORT_DIPNAME( 0x4000, 0x4000, "2 Players Time per Credit" )
  496.     PORT_DIPSETTING(      0x4000, "3 min" )
  497.     PORT_DIPSETTING(      0x0000, "2 min" )
  498.     PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
  499.     PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  500.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  501. INPUT_PORTS_END
  502.  
  503. INPUT_PORTS_START( karatblz )
  504.     PORT_START
  505.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
  506.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  507.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  508.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  509.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
  510.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
  511.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 )
  512.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 )
  513.     PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
  514.     PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
  515.     PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
  516.     PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
  517.     PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  518.     PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  519.     PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )
  520.     PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  521.  
  522.     PORT_START
  523.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  524.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  525.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  526.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  527.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  528.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  529.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
  530.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
  531.  
  532.     PORT_START
  533.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER3 )
  534.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER3 )
  535.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER3 )
  536.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
  537.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
  538.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
  539.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
  540.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER3 )
  541.     PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN3 )
  542.     PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN4 )
  543.     PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START3 )
  544.     PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START4 )
  545.     PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  546.     PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  547.     PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE2 )
  548.     PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  549.  
  550.     PORT_START
  551.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER4 )
  552.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER4 )
  553.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER4 )
  554.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER4 )
  555.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER4 )
  556.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER4 )
  557.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER4 )
  558.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER4 )
  559.  
  560.     PORT_START
  561.     PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
  562.     PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  563.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  564.     PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
  565.     PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  566.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  567.     PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
  568.     PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  569.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  570.     PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
  571.     PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  572.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  573.     PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
  574.     PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  575.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  576.     PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
  577.     PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  578.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  579.     PORT_DIPNAME( 0x0040, 0x0000, "Max Players" )
  580.     PORT_DIPSETTING(      0x0040, "2" )
  581.     PORT_DIPSETTING(      0x0000, "4" )
  582.     PORT_DIPNAME( 0x0080, 0x0080, "Coin Slot" )
  583.     PORT_DIPSETTING(      0x0080, "Same" )
  584.     PORT_DIPSETTING(      0x0000, "Individual" )
  585.     PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
  586.     PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
  587.     PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  588.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  589.     PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
  590.     PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
  591.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  592.     PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
  593.     PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  594.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  595.     PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
  596.     PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  597.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  598.     PORT_DIPNAME( 0x2000, 0x2000, "Freeze" )
  599.     PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
  600.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  601.     PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Demo_Sounds ) )
  602.     PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  603.     PORT_DIPSETTING(      0x4000, DEF_STR( On ) )
  604.     PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
  605.     PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  606.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  607. INPUT_PORTS_END
  608.  
  609. INPUT_PORTS_START( spinlbrk )
  610.     PORT_START
  611.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  612.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  613.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  614.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  615.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  616.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  617.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
  618.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  619.     PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
  620.     PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
  621.     PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
  622.     PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
  623.     PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  624.     PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  625.     PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )
  626.     PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  627.  
  628.     PORT_START
  629.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  630.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  631.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  632.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  633.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  634.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  635.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
  636.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  637.  
  638.     PORT_START
  639.     PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
  640.     PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  641.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  642.     PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
  643.     PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  644.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  645.     PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
  646.     PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  647.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  648.     PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
  649.     PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  650.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  651.     PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
  652.     PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  653.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  654.     PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
  655.     PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  656.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  657.     PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
  658.     PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  659.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  660.     PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
  661.     PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  662.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  663.     PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
  664.     PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  665.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  666.     PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
  667.     PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  668.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  669.     PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
  670.     PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
  671.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  672.     PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
  673.     PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  674.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  675.     PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
  676.     PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  677.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  678.     PORT_SERVICE( 0x2000, IP_ACTIVE_LOW )
  679.     PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
  680.     PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
  681.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  682.     PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
  683.     PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  684.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  685. INPUT_PORTS_END
  686.  
  687. INPUT_PORTS_START( turbofrc )
  688.     PORT_START
  689.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER1 )
  690.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER1 )
  691.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER1 )
  692.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
  693.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  694.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  695.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  696.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  697.     PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
  698.     PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
  699.     PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
  700.     PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
  701.     PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_SERVICE )    /* "TEST" */
  702.     PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
  703.     PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN4 )
  704.     PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN3 )
  705.  
  706.     PORT_START
  707.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  708.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  709.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  710.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  711.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  712.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  713.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  714.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )//START1 )
  715.  
  716.     PORT_START
  717.     PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coinage ) )
  718.     PORT_DIPSETTING(      0x0004, DEF_STR( 4C_1C ) )
  719.     PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
  720.     PORT_DIPSETTING(      0x0006, DEF_STR( 2C_1C ) )
  721.     PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
  722.     PORT_DIPSETTING(      0x0003, DEF_STR( 1C_2C ) )
  723.     PORT_DIPSETTING(      0x0002, DEF_STR( 1C_3C ) )
  724.     PORT_DIPSETTING(      0x0001, DEF_STR( 1C_5C ) )
  725.     PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  726.     PORT_DIPNAME( 0x0008, 0x0008, "2 Coins to Start, 1 to Continue" )
  727.     PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  728.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  729.     PORT_DIPNAME( 0x0010, 0x0010, "Coin Slot" )
  730.     PORT_DIPSETTING(      0x0010, "Same" )
  731.     PORT_DIPSETTING(      0x0000, "Individual" )
  732.     PORT_DIPNAME( 0x0020, 0x0000, "Max Players" )
  733.     PORT_DIPSETTING(      0x0020, "2" )
  734.     PORT_DIPSETTING(      0x0000, "3" )
  735.     PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) )
  736.     PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  737.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  738.     PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  739.     PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
  740.     PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  741.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  742.     PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
  743.     PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  744.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  745.     PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
  746.     PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
  747.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  748.     PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
  749.     PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  750.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  751.     PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Lives ) )
  752.     PORT_DIPSETTING(      0x0000, "2" )
  753.     PORT_DIPSETTING(      0x1000, "3" )
  754.     PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
  755.     PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
  756.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  757.     PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
  758.     PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
  759.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  760.     PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
  761.     PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  762.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  763.  
  764.     PORT_START
  765.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER3 )
  766.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER3 )
  767.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER3 )
  768.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER3 )
  769.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
  770.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  771.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  772.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 )
  773. INPUT_PORTS_END
  774.  
  775. INPUT_PORTS_START( aerofgtb )
  776.     PORT_START
  777.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
  778.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
  779.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
  780.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  781.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
  782.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
  783.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  784.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  785.     PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
  786.     PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
  787.     PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START1 )
  788.     PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START2 )
  789.     PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  790.     PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  791.     PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_COIN3 )
  792.     PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  793.  
  794.     PORT_START
  795.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
  796.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
  797.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
  798.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  799.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  800.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  801.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  802.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  803.  
  804.     PORT_START
  805.     PORT_DIPNAME( 0x0001, 0x0001, "Coin Slot" )
  806.     PORT_DIPSETTING(      0x0001, "Same" )
  807.     PORT_DIPSETTING(      0x0000, "Individual" )
  808.     PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coin_A ) )
  809.     PORT_DIPSETTING(      0x000a, DEF_STR( 3C_1C ) )
  810.     PORT_DIPSETTING(      0x000c, DEF_STR( 2C_1C ) )
  811.     PORT_DIPSETTING(      0x000e, DEF_STR( 1C_1C ) )
  812.     PORT_DIPSETTING(      0x0008, DEF_STR( 1C_2C ) )
  813.     PORT_DIPSETTING(      0x0006, DEF_STR( 1C_3C ) )
  814.     PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
  815.     PORT_DIPSETTING(      0x0002, DEF_STR( 1C_5C ) )
  816.     PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  817.     PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coin_B ) )
  818.     PORT_DIPSETTING(      0x0050, DEF_STR( 3C_1C ) )
  819.     PORT_DIPSETTING(      0x0060, DEF_STR( 2C_1C ) )
  820.     PORT_DIPSETTING(      0x0070, DEF_STR( 1C_1C ) )
  821.     PORT_DIPSETTING(      0x0040, DEF_STR( 1C_2C ) )
  822.     PORT_DIPSETTING(      0x0030, DEF_STR( 1C_3C ) )
  823.     PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
  824.     PORT_DIPSETTING(      0x0010, DEF_STR( 1C_5C ) )
  825.     PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  826.     PORT_DIPNAME( 0x0080, 0x0080, "2 Coins to Start, 1 to Continue" )
  827.     PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  828.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  829.     PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
  830.     PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  831.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  832.     PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Demo_Sounds ) )
  833.     PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  834.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  835.     PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  836.     PORT_DIPSETTING(      0x0800, "Easy" )
  837.     PORT_DIPSETTING(      0x0c00, "Normal" )
  838.     PORT_DIPSETTING(      0x0400, "Hard" )
  839.     PORT_DIPSETTING(      0x0000, "Hardest" )
  840.     PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
  841.     PORT_DIPSETTING(      0x2000, "1" )
  842.     PORT_DIPSETTING(      0x1000, "2" )
  843.     PORT_DIPSETTING(      0x3000, "3" )
  844.     PORT_DIPSETTING(      0x0000, "4" )
  845.     PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Bonus_Life ) )
  846.     PORT_DIPSETTING(      0x4000, "200000" )
  847.     PORT_DIPSETTING(      0x0000, "300000" )
  848.     PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
  849.  
  850.     PORT_START
  851.     PORT_DIPNAME( 0x0001, 0x0000, "Country" )
  852.     PORT_DIPSETTING(      0x0000, "Japan" )
  853.     PORT_DIPSETTING(      0x0001, "Taiwan" )
  854.     /* TODO: there are others in the table at 11910 */
  855.     /* this port is checked at 1b080 */
  856. INPUT_PORTS_END
  857.  
  858. INPUT_PORTS_START( aerofgt )
  859.     PORT_START
  860.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY )
  861.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY )
  862.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY )
  863.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  864.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
  865.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
  866.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  867.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  868.  
  869.     PORT_START
  870.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
  871.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
  872.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
  873.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  874.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  875.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  876.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  877.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  878.  
  879.     PORT_START
  880.     PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
  881.     PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
  882.     PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
  883.     PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
  884.     PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  885.     PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  886.     PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN3 )
  887.     PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  888.  
  889.     PORT_START
  890.     PORT_DIPNAME( 0x0001, 0x0001, "Coin Slot" )
  891.     PORT_DIPSETTING(      0x0001, "Same" )
  892.     PORT_DIPSETTING(      0x0000, "Individual" )
  893.     PORT_DIPNAME( 0x000e, 0x000e, DEF_STR( Coin_A ) )
  894.     PORT_DIPSETTING(      0x000a, DEF_STR( 3C_1C ) )
  895.     PORT_DIPSETTING(      0x000c, DEF_STR( 2C_1C ) )
  896.     PORT_DIPSETTING(      0x000e, DEF_STR( 1C_1C ) )
  897.     PORT_DIPSETTING(      0x0008, DEF_STR( 1C_2C ) )
  898.     PORT_DIPSETTING(      0x0006, DEF_STR( 1C_3C ) )
  899.     PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
  900.     PORT_DIPSETTING(      0x0002, DEF_STR( 1C_5C ) )
  901.     PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  902.     PORT_DIPNAME( 0x0070, 0x0070, DEF_STR( Coin_B ) )
  903.     PORT_DIPSETTING(      0x0050, DEF_STR( 3C_1C ) )
  904.     PORT_DIPSETTING(      0x0060, DEF_STR( 2C_1C ) )
  905.     PORT_DIPSETTING(      0x0070, DEF_STR( 1C_1C ) )
  906.     PORT_DIPSETTING(      0x0040, DEF_STR( 1C_2C ) )
  907.     PORT_DIPSETTING(      0x0030, DEF_STR( 1C_3C ) )
  908.     PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
  909.     PORT_DIPSETTING(      0x0010, DEF_STR( 1C_5C ) )
  910.     PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  911.     PORT_DIPNAME( 0x0080, 0x0080, "2 Coins to Start, 1 to Continue" )
  912.     PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  913.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  914.  
  915.     PORT_START
  916.     PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  917.     PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  918.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  919.     PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Demo_Sounds ) )
  920.     PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  921.     PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  922.     PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )
  923.     PORT_DIPSETTING(      0x0008, "Easy" )
  924.     PORT_DIPSETTING(      0x000c, "Normal" )
  925.     PORT_DIPSETTING(      0x0004, "Hard" )
  926.     PORT_DIPSETTING(      0x0000, "Hardest" )
  927.     PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
  928.     PORT_DIPSETTING(      0x0020, "1" )
  929.     PORT_DIPSETTING(      0x0010, "2" )
  930.     PORT_DIPSETTING(      0x0030, "3" )
  931.     PORT_DIPSETTING(      0x0000, "4" )
  932.     PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Bonus_Life ) )
  933.     PORT_DIPSETTING(      0x0040, "200000" )
  934.     PORT_DIPSETTING(      0x0000, "300000" )
  935.     PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  936.  
  937.     PORT_START
  938.     PORT_DIPNAME( 0x000f, 0x0000, "Country" )
  939.     PORT_DIPSETTING(      0x0000, "Any" )
  940.     PORT_DIPSETTING(      0x000f, "USA" )
  941.     PORT_DIPSETTING(      0x000e, "Korea" )
  942.     PORT_DIPSETTING(      0x000d, "Hong Kong" )
  943.     PORT_DIPSETTING(      0x000b, "Taiwan" )
  944. INPUT_PORTS_END
  945.  
  946.  
  947.  
  948. static struct GfxLayout pspikes_charlayout =
  949. {
  950.     8,8,
  951.     RGN_FRAC(1,1),
  952.     4,
  953.     { 0, 1, 2, 3 },
  954.     { 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4 },
  955.     { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
  956.     32*8
  957. };
  958.  
  959. static struct GfxLayout aerofgt_charlayout =
  960. {
  961.     8,8,
  962.     RGN_FRAC(1,1),
  963.     4,
  964.     { 0, 1, 2, 3 },
  965.     { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 },
  966.     { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
  967.     32*8
  968. };
  969.  
  970. static struct GfxLayout pspikes_spritelayout =
  971. {
  972.     16,16,
  973.     RGN_FRAC(1,2),
  974.     4,
  975.     { 0, 1, 2, 3 },
  976.     { 1*4, 0*4, 3*4, 2*4, RGN_FRAC(1,2)+1*4, RGN_FRAC(1,2)+0*4, RGN_FRAC(1,2)+3*4, RGN_FRAC(1,2)+2*4,
  977.             5*4, 4*4, 7*4, 6*4, RGN_FRAC(1,2)+5*4, RGN_FRAC(1,2)+4*4, RGN_FRAC(1,2)+7*4, RGN_FRAC(1,2)+6*4 },
  978.     { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
  979.             8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
  980.     64*8
  981. };
  982.  
  983. static struct GfxLayout aerofgtb_spritelayout =
  984. {
  985.     16,16,
  986.     RGN_FRAC(1,2),
  987.     4,
  988.     { 0, 1, 2, 3 },
  989.     { 3*4, 2*4, 1*4, 0*4, RGN_FRAC(1,2)+3*4, RGN_FRAC(1,2)+2*4, RGN_FRAC(1,2)+1*4, RGN_FRAC(1,2)+0*4,
  990.             7*4, 6*4, 5*4, 4*4, RGN_FRAC(1,2)+7*4, RGN_FRAC(1,2)+6*4, RGN_FRAC(1,2)+5*4, RGN_FRAC(1,2)+4*4 },
  991.     { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
  992.             8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
  993.     64*8
  994. };
  995.  
  996. static struct GfxLayout aerofgt_spritelayout =
  997. {
  998.     16,16,
  999.     RGN_FRAC(1,1),
  1000.     4,
  1001.     { 0, 1, 2, 3 },
  1002.     { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4,
  1003.             10*4, 11*4, 8*4, 9*4, 14*4, 15*4, 12*4, 13*4 },
  1004.     { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
  1005.             8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
  1006.     128*8
  1007. };
  1008.  
  1009. static struct GfxDecodeInfo pspikes_gfxdecodeinfo[] =
  1010. {
  1011.     { REGION_GFX1, 0, &pspikes_charlayout,      0, 64 },    /* colors    0-1023 in 8 banks */
  1012.     { REGION_GFX2, 0, &pspikes_spritelayout, 1024, 64 },    /* colors 1024-2047 in 4 banks */
  1013.     { -1 } /* end of array */
  1014. };
  1015.  
  1016. static struct GfxDecodeInfo turbofrc_gfxdecodeinfo[] =
  1017. {
  1018.     { REGION_GFX1, 0, &pspikes_charlayout,     0, 16 },
  1019.     { REGION_GFX2, 0, &pspikes_charlayout,   256, 16 },
  1020.     { REGION_GFX3, 0, &pspikes_spritelayout, 512, 16 },
  1021.     { REGION_GFX4, 0, &pspikes_spritelayout, 768, 16 },
  1022.     { -1 } /* end of array */
  1023. };
  1024.  
  1025. static struct GfxDecodeInfo aerofgtb_gfxdecodeinfo[] =
  1026. {
  1027.     { REGION_GFX1, 0, &pspikes_charlayout,      0, 16 },
  1028.     { REGION_GFX2, 0, &pspikes_charlayout,    256, 16 },
  1029.     { REGION_GFX3, 0, &aerofgtb_spritelayout, 512, 16 },
  1030.     { REGION_GFX4, 0, &aerofgtb_spritelayout, 768, 16 },
  1031.     { -1 } /* end of array */
  1032. };
  1033.  
  1034. static struct GfxDecodeInfo aerofgt_gfxdecodeinfo[] =
  1035. {
  1036.     { REGION_GFX1, 0, &aerofgt_charlayout,     0, 16 },
  1037.     { REGION_GFX1, 0, &aerofgt_charlayout,   256, 16 },
  1038.     { REGION_GFX2, 0, &aerofgt_spritelayout, 512, 16 },
  1039.     { REGION_GFX3, 0, &aerofgt_spritelayout, 768, 16 },
  1040.     { -1 } /* end of array */
  1041. };
  1042.  
  1043.  
  1044.  
  1045. static void irqhandler(int irq)
  1046. {
  1047.     cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
  1048. }
  1049.  
  1050. static struct YM2610interface ym2610_interface =
  1051. {
  1052.     1,
  1053.     8000000,    /* 8 MHz??? */
  1054.     { 25 },
  1055.     { 0 },
  1056.     { 0 },
  1057.     { 0 },
  1058.     { 0 },
  1059.     { irqhandler },
  1060.     { REGION_SOUND1 },
  1061.     { REGION_SOUND2 },
  1062.     { YM3012_VOL(50,MIXER_PAN_LEFT,50,MIXER_PAN_RIGHT) }
  1063. };
  1064.  
  1065.  
  1066.  
  1067. static struct MachineDriver machine_driver_pspikes =
  1068. {
  1069.     /* basic machine hardware */
  1070.     {
  1071.         {
  1072.             CPU_M68000,
  1073.             20000000/2,    /* 10 MHz (?) */
  1074.             pspikes_readmem,pspikes_writemem,0,0,
  1075.             m68_level1_irq,1    /* all irq vectors are the same */
  1076.         },
  1077.         {
  1078.             CPU_Z80 | CPU_AUDIO_CPU,
  1079.             8000000/2,    /* 4 Mhz ??? */
  1080.             sound_readmem,sound_writemem,turbofrc_sound_readport,turbofrc_sound_writeport,
  1081.             ignore_interrupt,0    /* NMIs are triggered by the main CPU */
  1082.                                 /* IRQs are triggered by the YM2610 */
  1083.         }
  1084.     },
  1085.     60, DEFAULT_60HZ_VBLANK_DURATION,       /* frames per second, vblank duration */
  1086.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  1087.     0,
  1088.  
  1089.     /* video hardware */
  1090.     64*8, 32*8, { 2*8-4, 44*8-4-1, 1*8, 29*8-1 },
  1091.     pspikes_gfxdecodeinfo,
  1092.     2048, 2048,
  1093.     0,
  1094.  
  1095.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  1096.     0,
  1097.     pspikes_vh_start,
  1098.     0,
  1099.     pspikes_vh_screenrefresh,
  1100.  
  1101.     /* sound hardware */
  1102.     SOUND_SUPPORTS_STEREO,0,0,0,
  1103.     {
  1104.         {
  1105.             SOUND_YM2610,
  1106.             &ym2610_interface,
  1107.         }
  1108.     }
  1109. };
  1110.  
  1111. static struct MachineDriver machine_driver_karatblz =
  1112. {
  1113.     /* basic machine hardware */
  1114.     {
  1115.         {
  1116.             CPU_M68000,
  1117.             20000000/2,    /* 10 MHz (?) */
  1118.             karatblz_readmem,karatblz_writemem,0,0,
  1119.             m68_level1_irq,1
  1120.         },
  1121.         {
  1122.             CPU_Z80 | CPU_AUDIO_CPU,
  1123.             8000000/2,    /* 4 Mhz ??? */
  1124.             sound_readmem,sound_writemem,turbofrc_sound_readport,turbofrc_sound_writeport,
  1125.             ignore_interrupt,0    /* NMIs are triggered by the main CPU */
  1126.                                 /* IRQs are triggered by the YM2610 */
  1127.         }
  1128.     },
  1129.     60, DEFAULT_60HZ_VBLANK_DURATION,       /* frames per second, vblank duration */
  1130.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  1131.     0,
  1132.  
  1133.     /* video hardware */
  1134.     64*8, 32*8, { 1*8, 45*8-1, 0*8, 30*8-1 },
  1135.     turbofrc_gfxdecodeinfo,
  1136.     1024, 1024,
  1137.     0,
  1138.  
  1139.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  1140.     0,
  1141.     karatblz_vh_start,
  1142.     0,
  1143.     karatblz_vh_screenrefresh,
  1144.  
  1145.     /* sound hardware */
  1146.     SOUND_SUPPORTS_STEREO,0,0,0,
  1147.     {
  1148.         {
  1149.             SOUND_YM2610,
  1150.             &ym2610_interface,
  1151.         }
  1152.     }
  1153. };
  1154.  
  1155. static struct MachineDriver machine_driver_spinlbrk =
  1156. {
  1157.     /* basic machine hardware */
  1158.     {
  1159.         {
  1160.             CPU_M68000,
  1161.             20000000/2,    /* 10 MHz (?) */
  1162.             spinlbrk_readmem,spinlbrk_writemem,0,0,
  1163.             m68_level1_irq,1    /* there are vectors for 3 and 4 too */
  1164.         },
  1165.         {
  1166.             CPU_Z80 | CPU_AUDIO_CPU,
  1167.             8000000/2,    /* 4 Mhz ??? */
  1168.             sound_readmem,sound_writemem,turbofrc_sound_readport,turbofrc_sound_writeport,
  1169.             ignore_interrupt,0    /* NMIs are triggered by the main CPU */
  1170.                                 /* IRQs are triggered by the YM2610 */
  1171.         }
  1172.     },
  1173.     60, DEFAULT_60HZ_VBLANK_DURATION,       /* frames per second, vblank duration */
  1174.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  1175.     0,
  1176.  
  1177.     /* video hardware */
  1178.     64*8, 32*8, { 1*8, 45*8-1, 0*8, 30*8-1 },
  1179.     turbofrc_gfxdecodeinfo,
  1180.     1024, 1024,
  1181.     0,
  1182.  
  1183.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  1184.     0,
  1185.     spinlbrk_vh_start,
  1186.     0,
  1187.     spinlbrk_vh_screenrefresh,
  1188.  
  1189.     /* sound hardware */
  1190.     SOUND_SUPPORTS_STEREO,0,0,0,
  1191.     {
  1192.         {
  1193.             SOUND_YM2610,
  1194.             &ym2610_interface,
  1195.         }
  1196.     }
  1197. };
  1198.  
  1199. static struct MachineDriver machine_driver_turbofrc =
  1200. {
  1201.     /* basic machine hardware */
  1202.     {
  1203.         {
  1204.             CPU_M68000,
  1205.             20000000/2,    /* 10 MHz (?) */
  1206.             turbofrc_readmem,turbofrc_writemem,0,0,
  1207.             m68_level1_irq,1    /* all irq vectors are the same */
  1208.         },
  1209.         {
  1210.             CPU_Z80 | CPU_AUDIO_CPU,
  1211.             8000000/2,    /* 4 Mhz ??? */
  1212.             sound_readmem,sound_writemem,turbofrc_sound_readport,turbofrc_sound_writeport,
  1213.             ignore_interrupt,0    /* NMIs are triggered by the main CPU */
  1214.                                 /* IRQs are triggered by the YM2610 */
  1215.         }
  1216.     },
  1217.     60, DEFAULT_60HZ_VBLANK_DURATION,       /* frames per second, vblank duration */
  1218.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  1219.     0,
  1220.  
  1221.     /* video hardware */
  1222.     64*8, 32*8, { 1*8, 44*8-1, 0*8, 30*8-1 },
  1223.     turbofrc_gfxdecodeinfo,
  1224.     1024, 1024,
  1225.     0,
  1226.  
  1227.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  1228.     0,
  1229.     turbofrc_vh_start,
  1230.     0,
  1231.     turbofrc_vh_screenrefresh,
  1232.  
  1233.     /* sound hardware */
  1234.     SOUND_SUPPORTS_STEREO,0,0,0,
  1235.     {
  1236.         {
  1237.             SOUND_YM2610,
  1238.             &ym2610_interface,
  1239.         }
  1240.     }
  1241. };
  1242.  
  1243. static struct MachineDriver machine_driver_aerofgtb =
  1244. {
  1245.     /* basic machine hardware */
  1246.     {
  1247.         {
  1248.             CPU_M68000,
  1249.             20000000/2,    /* 10 MHz (?) */
  1250.             aerofgtb_readmem,aerofgtb_writemem,0,0,
  1251.             m68_level1_irq,1    /* all irq vectors are the same */
  1252.         },
  1253.         {
  1254.             CPU_Z80 | CPU_AUDIO_CPU,
  1255.             8000000/2,    /* 4 Mhz ??? */
  1256.             sound_readmem,sound_writemem,aerofgt_sound_readport,aerofgt_sound_writeport,
  1257.             ignore_interrupt,0    /* NMIs are triggered by the main CPU */
  1258.                                 /* IRQs are triggered by the YM2610 */
  1259.         }
  1260.     },
  1261.     60, 500,    /* frames per second, vblank duration */
  1262.                 /* wrong but improves sprite-background synchronization */
  1263.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  1264.     0,
  1265.  
  1266.     /* video hardware */
  1267.     64*8, 32*8, { 0*8+12, 40*8-1+12, 0*8, 28*8-1 },
  1268.     aerofgtb_gfxdecodeinfo,
  1269.     1024, 1024,
  1270.     0,
  1271.  
  1272.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  1273.     0,
  1274.     turbofrc_vh_start,
  1275.     0,
  1276.     turbofrc_vh_screenrefresh,
  1277.  
  1278.     /* sound hardware */
  1279.     SOUND_SUPPORTS_STEREO,0,0,0,
  1280.     {
  1281.         {
  1282.             SOUND_YM2610,
  1283.             &ym2610_interface,
  1284.         }
  1285.     }
  1286. };
  1287.  
  1288. static struct MachineDriver machine_driver_aerofgt =
  1289. {
  1290.     /* basic machine hardware */
  1291.     {
  1292.         {
  1293.             CPU_M68000,
  1294.             20000000/2,    /* 10 MHz (?) */
  1295.             aerofgt_readmem,aerofgt_writemem,0,0,
  1296.             m68_level1_irq,1    /* all irq vectors are the same */
  1297.         },
  1298.         {
  1299.             CPU_Z80 | CPU_AUDIO_CPU,
  1300.             8000000/2,    /* 4 Mhz ??? */
  1301.             sound_readmem,sound_writemem,aerofgt_sound_readport,aerofgt_sound_writeport,
  1302.             ignore_interrupt,0    /* NMIs are triggered by the main CPU */
  1303.                                 /* IRQs are triggered by the YM2610 */
  1304.         }
  1305.     },
  1306.     60, 400,    /* frames per second, vblank duration */
  1307.                 /* wrong but improves sprite-background synchronization */
  1308.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  1309.     0,
  1310.  
  1311.     /* video hardware */
  1312.     64*8, 32*8, { 0*8, 40*8-1, 0*8, 28*8-1 },
  1313.     aerofgt_gfxdecodeinfo,
  1314.     1024, 1024,
  1315.     0,
  1316.  
  1317.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  1318.     0,
  1319.     turbofrc_vh_start,
  1320.     0,
  1321.     aerofgt_vh_screenrefresh,
  1322.  
  1323.     /* sound hardware */
  1324.     SOUND_SUPPORTS_STEREO,0,0,0,
  1325.     {
  1326.         {
  1327.             SOUND_YM2610,
  1328.             &ym2610_interface,
  1329.         }
  1330.     }
  1331. };
  1332.  
  1333.  
  1334.  
  1335. /***************************************************************************
  1336.  
  1337.   Game driver(s)
  1338.  
  1339. ***************************************************************************/
  1340.  
  1341. ROM_START( pspikes )
  1342.     ROM_REGION( 0xc0000, REGION_CPU1 )    /* 68000 code */
  1343.     ROM_LOAD_WIDE_SWAP( "20",           0x00000, 0x40000, 0x75cdcee2 )
  1344.  
  1345.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1346.     ROM_LOAD( "19",           0x00000, 0x20000, 0x7e8ed6e5 )
  1347.     ROM_RELOAD(               0x10000, 0x20000 )
  1348.  
  1349.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1350.     ROM_LOAD( "g7h",          0x000000, 0x80000, 0x74c23c3d )
  1351.  
  1352.     ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1353.     ROM_LOAD( "g7j",          0x000000, 0x80000, 0x0b9e4739 )
  1354.     ROM_LOAD( "g7l",          0x080000, 0x80000, 0x943139ff )
  1355.  
  1356.     ROM_REGION( 0x40000, REGION_SOUND1 ) /* sound samples */
  1357.     ROM_LOAD( "a47",          0x00000, 0x40000, 0xc6779dfa )
  1358.  
  1359.     ROM_REGION( 0x100000, REGION_SOUND2 ) /* sound samples */
  1360.     ROM_LOAD( "o5b",          0x000000, 0x100000, 0x07d6cbac )
  1361. ROM_END
  1362.  
  1363. ROM_START( svolly91 )
  1364.     ROM_REGION( 0xc0000, REGION_CPU1 )    /* 68000 code */
  1365.     ROM_LOAD_WIDE_SWAP( "u11.jpn",      0x00000, 0x40000, 0xea2e4c82 )
  1366.  
  1367.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1368.     ROM_LOAD( "19",           0x00000, 0x20000, 0x7e8ed6e5 )
  1369.     ROM_RELOAD(               0x10000, 0x20000 )
  1370.  
  1371.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1372.     ROM_LOAD( "g7h",          0x000000, 0x80000, 0x74c23c3d )
  1373.  
  1374.     ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1375.     ROM_LOAD( "g7j",          0x000000, 0x80000, 0x0b9e4739 )
  1376.     ROM_LOAD( "g7l",          0x080000, 0x80000, 0x943139ff )
  1377.  
  1378.     ROM_REGION( 0x40000, REGION_SOUND1 ) /* sound samples */
  1379.     ROM_LOAD( "a47",          0x00000, 0x40000, 0xc6779dfa )
  1380.  
  1381.     ROM_REGION( 0x100000, REGION_SOUND2 ) /* sound samples */
  1382.     ROM_LOAD( "o5b",          0x000000, 0x100000, 0x07d6cbac )
  1383. ROM_END
  1384.  
  1385. ROM_START( spinlbrk )
  1386.     ROM_REGION( 0x60000, REGION_CPU1 )    /* 68000 code */
  1387.     ROM_LOAD_EVEN( "ic98",    0x00000, 0x10000, 0x36c2bf70 )
  1388.     ROM_LOAD_ODD ( "ic104",   0x00000, 0x10000, 0x34a7e158 )
  1389.     ROM_LOAD_EVEN( "ic93",    0x20000, 0x10000, 0x726f4683 )
  1390.     ROM_LOAD_ODD ( "ic94",    0x20000, 0x10000, 0xc4385e03 )
  1391.  
  1392.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1393.     ROM_LOAD( "ic117",        0x00000, 0x08000, 0x625ada41 )
  1394.     ROM_LOAD( "ic118",        0x10000, 0x10000, 0x1025f024 )
  1395.  
  1396.     ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1397.     ROM_LOAD( "ic15",         0x000000, 0x80000, 0xe318cf3a )
  1398.     ROM_LOAD( "ic9",          0x080000, 0x80000, 0xe071f674 )
  1399.  
  1400.     ROM_REGION( 0x200000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1401.     ROM_LOAD( "ic17",         0x000000, 0x80000, 0xa63d5a55 )
  1402.     ROM_LOAD( "ic11",         0x080000, 0x80000, 0x7dcc913d )
  1403.     ROM_LOAD( "ic16",         0x100000, 0x80000, 0x0d84af7f )    //FIRST AND SECOND HALF IDENTICAL
  1404.  
  1405.     ROM_REGION( 0x100000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1406.     ROM_LOAD( "ic12",         0x000000, 0x80000, 0xd63fac4e )
  1407.     ROM_LOAD( "ic18",         0x080000, 0x80000, 0x5a60444b )
  1408.  
  1409.     ROM_REGION( 0x200000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  1410.     ROM_LOAD( "ic14",         0x000000, 0x80000, 0x1befd0f3 )
  1411.     ROM_LOAD( "ic20",         0x080000, 0x80000, 0xc2f84a61 )
  1412.     ROM_LOAD( "ic35",         0x100000, 0x80000, 0xeba8e1a3 )
  1413.     ROM_LOAD( "ic40",         0x180000, 0x80000, 0x5ef5aa7e )
  1414.  
  1415.     ROM_REGION( 0x24000, REGION_GFX5 )    /* hardcoded sprite maps */
  1416.     ROM_LOAD_EVEN( "ic19",    0x00000, 0x10000, 0xdb24eeaa )
  1417.     ROM_LOAD_ODD ( "ic13",    0x00000, 0x10000, 0x97025bf4 )
  1418.     /* 20000-23fff empty space, filled in vh_startup */
  1419.  
  1420.     ROM_REGION( 0x80000, REGION_SOUND1 ) /* sound samples */
  1421.     ROM_LOAD( "ic166",        0x000000, 0x80000, 0x6e0d063a )
  1422.  
  1423.     ROM_REGION( 0x80000, REGION_SOUND2 ) /* sound samples */
  1424.     ROM_LOAD( "ic163",        0x000000, 0x80000, 0xe6621dfb )    //FIRST AND SECOND HALF IDENTICAL
  1425. ROM_END
  1426.  
  1427. ROM_START( spinlbru )
  1428.     ROM_REGION( 0x60000, REGION_CPU1 )    /* 68000 code */
  1429.     ROM_LOAD_EVEN( "ic98.u5", 0x00000, 0x10000, 0x3a0f7667 )
  1430.     ROM_LOAD_ODD ( "ic104.u6",0x00000, 0x10000, 0xa0e0af31 )
  1431.     ROM_LOAD_EVEN( "ic93.u4", 0x20000, 0x10000, 0x0cf73029 )
  1432.     ROM_LOAD_ODD ( "ic94.u3", 0x20000, 0x10000, 0x5cf7c426 )
  1433.  
  1434.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1435.     ROM_LOAD( "ic117",        0x00000, 0x08000, 0x625ada41 )
  1436.     ROM_LOAD( "ic118",        0x10000, 0x10000, 0x1025f024 )
  1437.  
  1438.     ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1439.     ROM_LOAD( "ic15",         0x000000, 0x80000, 0xe318cf3a )
  1440.     ROM_LOAD( "ic9",          0x080000, 0x80000, 0xe071f674 )
  1441.  
  1442.     ROM_REGION( 0x200000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1443.     ROM_LOAD( "ic17",         0x000000, 0x80000, 0xa63d5a55 )
  1444.     ROM_LOAD( "ic11",         0x080000, 0x80000, 0x7dcc913d )
  1445.     ROM_LOAD( "ic16",         0x100000, 0x80000, 0x0d84af7f )    //FIRST AND SECOND HALF IDENTICAL
  1446.  
  1447.     ROM_REGION( 0x100000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1448.     ROM_LOAD( "ic12",         0x000000, 0x80000, 0xd63fac4e )
  1449.     ROM_LOAD( "ic18",         0x080000, 0x80000, 0x5a60444b )
  1450.  
  1451.     ROM_REGION( 0x200000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  1452.     ROM_LOAD( "ic14",         0x000000, 0x80000, 0x1befd0f3 )
  1453.     ROM_LOAD( "ic20",         0x080000, 0x80000, 0xc2f84a61 )
  1454.     ROM_LOAD( "ic35",         0x100000, 0x80000, 0xeba8e1a3 )
  1455.     ROM_LOAD( "ic40",         0x180000, 0x80000, 0x5ef5aa7e )
  1456.  
  1457.     ROM_REGION( 0x24000, REGION_GFX5 )    /* hardcoded sprite maps */
  1458.     ROM_LOAD_EVEN( "ic19",    0x00000, 0x10000, 0xdb24eeaa )
  1459.     ROM_LOAD_ODD ( "ic13",    0x00000, 0x10000, 0x97025bf4 )
  1460.     /* 20000-23fff empty space, filled in vh_startup */
  1461.  
  1462.     ROM_REGION( 0x80000, REGION_SOUND1 ) /* sound samples */
  1463.     ROM_LOAD( "ic166",        0x000000, 0x80000, 0x6e0d063a )
  1464.  
  1465.     ROM_REGION( 0x80000, REGION_SOUND2 ) /* sound samples */
  1466.     ROM_LOAD( "ic163",        0x000000, 0x80000, 0xe6621dfb )    //FIRST AND SECOND HALF IDENTICAL
  1467. ROM_END
  1468.  
  1469. ROM_START( spinlbrj )
  1470.     ROM_REGION( 0x60000, REGION_CPU1 )    /* 68000 code */
  1471.     ROM_LOAD_EVEN( "j5",      0x00000, 0x10000, 0x6a3d690e )
  1472.     ROM_LOAD_ODD ( "j6",      0x00000, 0x10000, 0x869593fa )
  1473.     ROM_LOAD_EVEN( "j4",      0x20000, 0x10000, 0x33e33912 )
  1474.     ROM_LOAD_ODD ( "j3",      0x20000, 0x10000, 0x16ca61d0 )
  1475.  
  1476.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1477.     ROM_LOAD( "ic117",        0x00000, 0x08000, 0x625ada41 )
  1478.     ROM_LOAD( "ic118",        0x10000, 0x10000, 0x1025f024 )
  1479.  
  1480.     ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1481.     ROM_LOAD( "ic15",         0x000000, 0x80000, 0xe318cf3a )
  1482.     ROM_LOAD( "ic9",          0x080000, 0x80000, 0xe071f674 )
  1483.  
  1484.     ROM_REGION( 0x200000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1485.     ROM_LOAD( "ic17",         0x000000, 0x80000, 0xa63d5a55 )
  1486.     ROM_LOAD( "ic11",         0x080000, 0x80000, 0x7dcc913d )
  1487.     ROM_LOAD( "ic16",         0x100000, 0x80000, 0x0d84af7f )    //FIRST AND SECOND HALF IDENTICAL
  1488.  
  1489.     ROM_REGION( 0x100000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1490.     ROM_LOAD( "ic12",         0x000000, 0x80000, 0xd63fac4e )
  1491.     ROM_LOAD( "ic18",         0x080000, 0x80000, 0x5a60444b )
  1492.  
  1493.     ROM_REGION( 0x200000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  1494.     ROM_LOAD( "ic14",         0x000000, 0x80000, 0x1befd0f3 )
  1495.     ROM_LOAD( "ic20",         0x080000, 0x80000, 0xc2f84a61 )
  1496.     ROM_LOAD( "ic35",         0x100000, 0x80000, 0xeba8e1a3 )
  1497.     ROM_LOAD( "ic40",         0x180000, 0x80000, 0x5ef5aa7e )
  1498.  
  1499.     ROM_REGION( 0x24000, REGION_GFX5 )    /* hardcoded sprite maps */
  1500.     ROM_LOAD_EVEN( "ic19",    0x00000, 0x10000, 0xdb24eeaa )
  1501.     ROM_LOAD_ODD ( "ic13",    0x00000, 0x10000, 0x97025bf4 )
  1502.     /* 20000-23fff empty space, filled in vh_startup */
  1503.  
  1504.     ROM_REGION( 0x80000, REGION_SOUND1 ) /* sound samples */
  1505.     ROM_LOAD( "ic166",        0x000000, 0x80000, 0x6e0d063a )
  1506.  
  1507.     ROM_REGION( 0x80000, REGION_SOUND2 ) /* sound samples */
  1508.     ROM_LOAD( "ic163",        0x000000, 0x80000, 0xe6621dfb )    //FIRST AND SECOND HALF IDENTICAL
  1509. ROM_END
  1510.  
  1511. ROM_START( karatblz )
  1512.     ROM_REGION( 0x80000, REGION_CPU1 )    /* 68000 code */
  1513.     ROM_LOAD_WIDE_SWAP( "rom2v3",  0x00000, 0x40000, 0x01f772e1 )
  1514.     ROM_LOAD_WIDE_SWAP( "1.u15",   0x40000, 0x40000, 0xd16ee21b )
  1515.  
  1516.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1517.     ROM_LOAD( "5.u92",        0x00000, 0x20000, 0x97d67510 )
  1518.     ROM_RELOAD(               0x10000, 0x20000 )
  1519.  
  1520.     ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1521.     ROM_LOAD( "gha.u55",      0x00000, 0x80000, 0x3e0cea91 )
  1522.  
  1523.     ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1524.     ROM_LOAD( "gh9.u61",      0x00000, 0x80000, 0x5d1676bd )
  1525.  
  1526.     ROM_REGION( 0x400000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1527.     ROM_LOAD( "u42",          0x000000, 0x100000, 0x65f0da84 )
  1528.     ROM_LOAD( "3.u44",        0x100000, 0x020000, 0x34bdead2 )
  1529.     ROM_LOAD( "u43",          0x200000, 0x100000, 0x7b349e5d )
  1530.     ROM_LOAD( "4.u45",        0x300000, 0x020000, 0xbe4d487d )
  1531.  
  1532.     ROM_REGION( 0x100000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  1533.     ROM_LOAD( "u59.ghb",      0x000000, 0x80000, 0x158c9cde )
  1534.     ROM_LOAD( "ghd.u60",      0x080000, 0x80000, 0x73180ae3 )
  1535.  
  1536.     ROM_REGION( 0x080000, REGION_SOUND1 ) /* sound samples */
  1537.     ROM_LOAD( "u105.gh8",     0x000000, 0x080000, 0x7a68cb1b )
  1538.  
  1539.     ROM_REGION( 0x100000, REGION_SOUND2 ) /* sound samples */
  1540.     ROM_LOAD( "u104",         0x000000, 0x100000, 0x5795e884 )
  1541. ROM_END
  1542.  
  1543. ROM_START( karatblu )
  1544.     ROM_REGION( 0x80000, REGION_CPU1 )    /* 68000 code */
  1545.     ROM_LOAD_WIDE_SWAP( "2.u14",   0x00000, 0x40000, 0x202e6220 )
  1546.     ROM_LOAD_WIDE_SWAP( "1.u15",   0x40000, 0x40000, 0xd16ee21b )
  1547.  
  1548.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1549.     ROM_LOAD( "5.u92",        0x00000, 0x20000, 0x97d67510 )
  1550.     ROM_RELOAD(               0x10000, 0x20000 )
  1551.  
  1552.     ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1553.     ROM_LOAD( "gha.u55",      0x00000, 0x80000, 0x3e0cea91 )
  1554.  
  1555.     ROM_REGION( 0x80000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1556.     ROM_LOAD( "gh9.u61",      0x00000, 0x80000, 0x5d1676bd )
  1557.  
  1558.     ROM_REGION( 0x400000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1559.     ROM_LOAD( "u42",          0x000000, 0x100000, 0x65f0da84 )
  1560.     ROM_LOAD( "3.u44",        0x100000, 0x020000, 0x34bdead2 )
  1561.     ROM_LOAD( "u43",          0x200000, 0x100000, 0x7b349e5d )
  1562.     ROM_LOAD( "4.u45",        0x300000, 0x020000, 0xbe4d487d )
  1563.  
  1564.     ROM_REGION( 0x100000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  1565.     ROM_LOAD( "u59.ghb",      0x000000, 0x80000, 0x158c9cde )
  1566.     ROM_LOAD( "ghd.u60",      0x080000, 0x80000, 0x73180ae3 )
  1567.  
  1568.     ROM_REGION( 0x080000, REGION_SOUND1 ) /* sound samples */
  1569.     ROM_LOAD( "u105.gh8",     0x000000, 0x080000, 0x7a68cb1b )
  1570.  
  1571.     ROM_REGION( 0x100000, REGION_SOUND2 ) /* sound samples */
  1572.     ROM_LOAD( "u104",         0x000000, 0x100000, 0x5795e884 )
  1573. ROM_END
  1574.  
  1575. ROM_START( turbofrc )
  1576.     ROM_REGION( 0xc0000, REGION_CPU1 )    /* 68000 code */
  1577.     ROM_LOAD_WIDE_SWAP( "tfrc2.bin",    0x00000, 0x40000, 0x721300ee )
  1578.     ROM_LOAD_WIDE_SWAP( "tfrc1.bin",    0x40000, 0x40000, 0x6cd5312b )
  1579.     ROM_LOAD_WIDE_SWAP( "tfrc3.bin",    0x80000, 0x40000, 0x63f50557 )
  1580.  
  1581.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1582.     ROM_LOAD( "tfrcu166.bin", 0x00000, 0x20000, 0x2ca14a65 )
  1583.     ROM_RELOAD(               0x10000, 0x20000 )
  1584.  
  1585.     ROM_REGION( 0x0a0000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1586.     ROM_LOAD( "tfrcu94.bin",  0x000000, 0x80000, 0xbaa53978 )
  1587.     ROM_LOAD( "tfrcu95.bin",  0x080000, 0x20000, 0x71a6c573 )
  1588.  
  1589.     ROM_REGION( 0x0a0000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1590.     ROM_LOAD( "tfrcu105.bin", 0x000000, 0x80000, 0x4de4e59e )
  1591.     ROM_LOAD( "tfrcu106.bin", 0x080000, 0x20000, 0xc6479eb5 )
  1592.  
  1593.     ROM_REGION( 0x200000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1594.     ROM_LOAD( "tfrcu116.bin", 0x000000, 0x80000, 0xdf210f3b )
  1595.     ROM_LOAD( "tfrcu118.bin", 0x080000, 0x40000, 0xf61d1d79 )
  1596.     ROM_LOAD( "tfrcu117.bin", 0x100000, 0x80000, 0xf70812fd )
  1597.     ROM_LOAD( "tfrcu119.bin", 0x180000, 0x40000, 0x474ea716 )
  1598.  
  1599.     ROM_REGION( 0x100000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  1600.     ROM_LOAD( "tfrcu134.bin", 0x000000, 0x80000, 0x487330a2 )
  1601.     ROM_LOAD( "tfrcu135.bin", 0x080000, 0x80000, 0x3a7e5b6d )
  1602.  
  1603.     ROM_REGION( 0x20000, REGION_SOUND1 ) /* sound samples */
  1604.     ROM_LOAD( "tfrcu180.bin",   0x00000, 0x20000, 0x39c7c7d5 )
  1605.  
  1606.     ROM_REGION( 0x100000, REGION_SOUND2 ) /* sound samples */
  1607.     ROM_LOAD( "tfrcu179.bin", 0x000000, 0x100000, 0x60ca0333 )
  1608. ROM_END
  1609.  
  1610. ROM_START( aerofgt )
  1611.     ROM_REGION( 0x80000, REGION_CPU1 )    /* 68000 code */
  1612.     ROM_LOAD_WIDE_SWAP( "1.u4",         0x00000, 0x80000, 0x6fdff0a2 )
  1613.  
  1614.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1615.     ROM_LOAD( "2.153",        0x00000, 0x20000, 0xa1ef64ec )
  1616.     ROM_RELOAD(               0x10000, 0x20000 )
  1617.  
  1618.     ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1619.     ROM_LOAD( "538a54.124",   0x000000, 0x80000, 0x4d2c4df2 )
  1620.     ROM_LOAD( "1538a54.124",  0x080000, 0x80000, 0x286d109e )
  1621.  
  1622.     ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1623.     ROM_LOAD( "538a53.u9",    0x000000, 0x100000, 0x630d8e0b )
  1624.  
  1625.     ROM_REGION( 0x080000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1626.     ROM_LOAD( "534g8f.u18",   0x000000, 0x80000, 0x76ce0926 )
  1627.  
  1628.     ROM_REGION( 0x40000, REGION_SOUND1 ) /* sound samples */
  1629.     ROM_LOAD( "it-19-01",     0x00000, 0x40000, 0x6d42723d )
  1630.  
  1631.     ROM_REGION( 0x100000, REGION_SOUND2 ) /* sound samples */
  1632.     ROM_LOAD( "it-19-06",     0x000000, 0x100000, 0xcdbbdb1d )
  1633. ROM_END
  1634.  
  1635. ROM_START( aerofgtb )
  1636.     ROM_REGION( 0x80000, REGION_CPU1 )    /* 68000 code */
  1637.     ROM_LOAD_EVEN( "v2",                0x00000, 0x40000, 0x5c9de9f0 )
  1638.     ROM_LOAD_ODD ( "v1",                0x00000, 0x40000, 0x89c1dcf4 )
  1639.  
  1640.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1641.     ROM_LOAD( "v3",           0x00000, 0x20000, 0xcbb18cf4 )
  1642.     ROM_RELOAD(               0x10000, 0x20000 )
  1643.  
  1644.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1645.     ROM_LOAD( "it-19-03",     0x000000, 0x80000, 0x85eba1a4 )
  1646.  
  1647.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1648.     ROM_LOAD( "it-19-02",     0x000000, 0x80000, 0x4f57f8ba )
  1649.  
  1650.     ROM_REGION( 0x100000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1651.     ROM_LOAD( "it-19-04",     0x000000, 0x80000, 0x3b329c1f )
  1652.     ROM_LOAD( "it-19-05",     0x080000, 0x80000, 0x02b525af )
  1653.  
  1654.     ROM_REGION( 0x080000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  1655.     ROM_LOAD( "g27",          0x000000, 0x40000, 0x4d89cbc8 )
  1656.     ROM_LOAD( "g26",          0x040000, 0x40000, 0x8072c1d2 )
  1657.  
  1658.     ROM_REGION( 0x40000, REGION_SOUND1 ) /* sound samples */
  1659.     ROM_LOAD( "it-19-01",     0x00000, 0x40000, 0x6d42723d )
  1660.  
  1661.     ROM_REGION( 0x100000, REGION_SOUND2 ) /* sound samples */
  1662.     ROM_LOAD( "it-19-06",     0x000000, 0x100000, 0xcdbbdb1d )
  1663. ROM_END
  1664.  
  1665. ROM_START( aerofgtc )
  1666.     ROM_REGION( 0x80000, REGION_CPU1 )    /* 68000 code */
  1667.     ROM_LOAD_EVEN( "v2.149",            0x00000, 0x40000, 0xf187aec6 )
  1668.     ROM_LOAD_ODD ( "v1.111",            0x00000, 0x40000, 0x9e684b19 )
  1669.  
  1670.     ROM_REGION( 0x30000, REGION_CPU2 )    /* 64k for the audio CPU + banks */
  1671.     ROM_LOAD( "2.153",        0x00000, 0x20000, 0xa1ef64ec )
  1672.     ROM_RELOAD(               0x10000, 0x20000 )
  1673.  
  1674.     /* gfx ROMs were missing in this set, I'm using the aerofgtb ones */
  1675.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1676.     ROM_LOAD( "it-19-03",     0x000000, 0x80000, 0x85eba1a4 )
  1677.  
  1678.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1679.     ROM_LOAD( "it-19-02",     0x000000, 0x80000, 0x4f57f8ba )
  1680.  
  1681.     ROM_REGION( 0x100000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  1682.     ROM_LOAD( "it-19-04",     0x000000, 0x80000, 0x3b329c1f )
  1683.     ROM_LOAD( "it-19-05",     0x080000, 0x80000, 0x02b525af )
  1684.  
  1685.     ROM_REGION( 0x080000, REGION_GFX4 | REGIONFLAG_DISPOSE )
  1686.     ROM_LOAD( "g27",          0x000000, 0x40000, 0x4d89cbc8 )
  1687.     ROM_LOAD( "g26",          0x040000, 0x40000, 0x8072c1d2 )
  1688.  
  1689.     ROM_REGION( 0x40000, REGION_SOUND1 ) /* sound samples */
  1690.     ROM_LOAD( "it-19-01",     0x00000, 0x40000, 0x6d42723d )
  1691.  
  1692.     ROM_REGION( 0x100000, REGION_SOUND2 ) /* sound samples */
  1693.     ROM_LOAD( "it-19-06",     0x000000, 0x100000, 0xcdbbdb1d )
  1694. ROM_END
  1695.  
  1696.  
  1697.  
  1698. GAMEX( 1991, pspikes,  0,        pspikes,  pspikes,  0, ROT0,   "Video System Co.", "Power Spikes (Korea)", GAME_NO_COCKTAIL )
  1699. GAMEX( 1991, svolly91, pspikes,  pspikes,  pspikes,  0, ROT0,   "Video System Co.", "Super Volley '91 (Japan)", GAME_NO_COCKTAIL )
  1700. GAMEX( 1991, karatblz, 0,        karatblz, karatblz, 0, ROT0,   "Video System Co.", "Karate Blazers (World?)", GAME_NO_COCKTAIL )
  1701. GAMEX( 1991, karatblu, karatblz, karatblz, karatblz, 0, ROT0,   "Video System Co.", "Karate Blazers (US)", GAME_NO_COCKTAIL )
  1702. GAMEX( 1990, spinlbrk, 0,        spinlbrk, spinlbrk, 0, ROT0,   "V-System Co.", "Spinal Breakers (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
  1703. GAMEX( 1990, spinlbru, spinlbrk, spinlbrk, spinlbrk, 0, ROT0,   "V-System Co.", "Spinal Breakers (US)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
  1704. GAMEX( 1990, spinlbrj, spinlbrk, spinlbrk, spinlbrk, 0, ROT0,   "V-System Co.", "Spinal Breakers (Japan)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
  1705. GAMEX( 1991, turbofrc, 0,        turbofrc, turbofrc, 0, ROT270, "Video System Co.", "Turbo Force", GAME_NO_COCKTAIL )
  1706. GAMEX( 1992, aerofgt,  0,        aerofgt,  aerofgt,  0, ROT270, "Video System Co.", "Aero Fighters", GAME_NO_COCKTAIL )
  1707. GAMEX( 1992, aerofgtb, aerofgt,  aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Aero Fighters (Turbo Force hardware set 1)", GAME_NO_COCKTAIL )
  1708. GAMEX( 1992, aerofgtc, aerofgt,  aerofgtb, aerofgtb, 0, ROT270, "Video System Co.", "Aero Fighters (Turbo Force hardware set 2)", GAME_NO_COCKTAIL )
  1709.